TPAMI 2023丨用于3D室内场景具有细粒度几何生成的层次图网络
3D 室内场景具有广泛的应用,例如智能数字房屋、虚拟现实/虚拟现实、机器人技术、虚拟房间规划等。它们还包含丰富的信息,包括房间布局,以及家具类型、几何形状和位置。人们对高质量的 3D 室内场景有很高的要求,但创建高质量的 3D 室内场景不仅耗时,而且需要设计师的专业知识。因此,能够自动生成 3D 场景的研究将非常有价值。
作者单位:
论文链接:
开源代码:
引言
现有的研究工作通常只关注部分步骤,而不是整个过程。例如,大量工作涉及室内场景布局生成,包括传统的数据驱动模型和更新的深度生成模型。尽管此类作品可以生成多样且合理的家具布局,但它们不会同时生成家具几何图形,通常只会从存储库中检索现有的家具形状。
然而,形状几何和布局是相关的,分别处理这两个步骤可能会产生次优结果。此外,由于家具在几何和结构方面可能具有多种多样,检索形状不可避免地限制了可能出现在合成场景中的家具形状的多样性。其他一些工作明确考虑了零件感知的 3D 形状生成,它可以应用于家具物体以合成具有各种结构和/或几何细节的对象,但此类方法仅限于单个物体,而不是在 3D 室内场景级别。
虽然可以按顺序应用这些单独的步骤来合成 3D 室内场景,但很难确保对象之间的一致性和兼容性,如果将早期输出作为对下一阶段的约束,也可能会不必要地限制生成场景的多样性。一个关键的问题是家具的布局和几何形状是纠缠在一起的。例如,当一把椅子放在桌子下面时,它的几何形状不能是任意的,因为椅子必须适合那里的空间。因此,几何图形必须与其布局兼容。
为了应对这些挑战,作者提出联合对布局和细粒度几何建模,并使用单个深度生成模型合成整个 3D 房间。这将具有显著优势:通过将其视为联合优化问题,提出的方法能够生成具有丰富几何细节的多样化室内场景,同时确保物体房间关系、物体之间的上下文关系以及家具物体内容和风格的一致性/兼容性。
然而,由于数据的复杂性和问题的存在,存在许多挑战。虽然一个房间自然是分层的:它包含多个家具对象,并且每个家具物体也可以使用基于零件的方法进行建模以获得灵活的结构和细粒度的几何形状,但一个房间可能包含大量对象(例如一个房间在 3D-FRONT 数据集中包含多达 188 个对象),这使得学习变得困难。考虑到对于较大的房间,较小的物体组更可能相互关联(例如,桌子周围有几把椅子),因此引入了功能区域(例如用餐区、沙发区)作为中间代理来弥合房间和物品。
在生成室内场景时,通常会给出房间形状。通过变形一个单位正方形来灵活地表示房间形状,并将变形的编码视为室内场景生成的条件。为了确保合理的综合,考虑丰富的关系也很重要。这些包括层次结构中的垂直关系:区域必须在房间边界内,物体应在区域边界内等,以及将物体约束在同一级别的水平关系:例如物体的对称性、物体之间的相邻性、物体零件之间的对称性等。
为了实现这一点,作者的层次图网络是基于递归神经网络(RvNN)的变分自动编码器(VAE),涵盖 4 个级别,即:房间、区域、物体和零件,在图节点之间精心设计的边缘以强制执行约束。训练如此庞大的网络也具有挑战性,作者提出了多阶段训练策略以确保训练稳定有效。
由于没有公开的数据集包含丰富的零件级 3D 室内场景,作者使用了一个混合数据集,将 3D-FRONT 数据(物体级三维室内场景)与 PartNet 数据集相结合,后者包含有详细的零件级注释的物体,其中 3D-FRONT 数据集中的每个物体被替换成最相似的 PartNet 中的物体,以使得到的三维场景具有零件级注释。广泛的实验表明,本文的方法优于基线,并允许进行一系列有趣的应用,包括重建、生成、补全和插值。
总之,本文的主要贡献是:
1. 第一个提出能够用合理的家具合成整个房间的深度生成模型,包括物体布局和细粒度的物体几何。
2. 为了实现这一目标,作者提出了一个基于 RvNN VAE 的分层图网络,它涵盖了从房间到物体和物体零件的四个层次。在图中引入了功能区域和精心设计的垂直和水平边缘,包括代表多个物体之间关系的超边缘,以确保有效的学习和合理的生成。进一步将房间边界编码为变形的正方形,并将其作为控制生成的条件。
背景与问题
在此简要回顾合成场景表示和方法,并总结了利用层次图表示来学习 3D 生成模型的现有研究工作。
室内场景表示。由于现实三维场景的复杂性和多样性,研究者们已经开始追求组合式的场景表示,如场景图,它明确地模拟了场景中的实体(如房间、物体、墙壁)和它们之间的丰富关系(如相邻性、对称性)。场景图已被证明在生成二维图像方面具有强大的能力。
在本文的方法中,作者使用了一个层次图场景表示法,它不仅利用了场景图表示法的优势来编码同一层次的场景实体之间的丰富关系,而且还利用了层次分解来抽象不同层次的节点(例如,区域、物体、物体部分)。3D 场景可以被分层分解成多个语义层次的内容节点:区域、物体和物体零件。一些父-子间的包容约束,如物体应位于房间边界内,应该是成立的。本文工作还在每个层次的同级节点之间用水平边缘形成较小的图来增强效果。
室内场景合成。有许多探索家具布局生成的作品,在此简要回顾一下这个任务:该系列工作的通常设定为从给定的数据库中检索三维模型,并预测模型的位置,以生成语义上和功能上真实的室内场景。
在深度学习得到普及之前,大量的工作已经探索了这个问题,并不断地推动着前沿的发展。对于真实的室内场景,一些工作通过使用机器人的扫描方法对真实场景进行了密集的、真实的重建。
最近,基于深度学习的方法进一步提升了性能。比如引入一个基于图像的生成模型,对关系图进行推理。提出学习基于图像的深度卷积生成模型;利用一个递归神经网络在一个有四面墙的房间内布置家具;通过训练生成式对抗网络来解决这一任务,通过混合表示实现没有任何地板约束的自由形态生成,等等。还有其他一些工作在语言、活动、人类和动作的约束下学习产生家具布局。与这些工作不同的是,本文的方法是学习生成新的三维家具形状,而不是从数据库中检索现有的模型,同时也扩展到更精细的物体零件。
分层图网络。设计用于处理分层数据的神经架构是非常不容易的事情。最近的工作表明,使用递归神经网络(RvNN)和 TreeLSTM 来编码树状结构的自然语言句子和自然场景,取得了很好的效果。
后续工作扩展了 GRASS,以便从单一图像或三维点云中重建零件层次。StructureNet 及其后续工作利用 PartNet 数据集,提供了大规模的分层形状零件分割注释,将 GRASS 的二元层次结构扩展为更灵活的 n-ary 层次结构,并通过相邻和对称的零件关系形成兄弟节点之间的局部图来增强表示。在本文中,作者进一步探索使用层次图网络,特别是本文中的 RvNN,用于三维场景的生成,将每个 3D 场景建模为带有图的 n-ary 层次结构。
方法概述
作者提出了 SceneHGN,一个用于 3D 室内场景网格生成的分层图网络,它在多个概念层面上是端到端的可区分的:房间、功能区、家具物体,甚至是细粒度的物体零件几何。给定房间边界布局作为输入,SceneHGN 学习平滑和连续的条件潜伏空间,以生成多样化和新颖的室内场景,其中包括语义上合理的家具布局和具有部件级细节的形状几何。图 2 展示了用于 3D 场景生成的分层条件变分自动编码器(VAE)的高层次结构概况。
层次图表示
场景中的物体也有自己的构成零件结构:它们的组成零件和零件关系。因此,在本文方法中,将一个物体组织成一个 n 元层次图树,其中包括其零件几何和边缘关系。需要注意的是,整个场景层次中的物体节点不仅编码了 n 元层次图树来表示物体的几何和结构,而且还编码了房间家具布局背景中的空间参数。
层次图网络
在编码过程中,家具物体首先被预先训练好的 DSG-Net 编码为物体特征。然后,结合物体特征和它们在区域中的空间位置信息,提取区域级特征。最后,一个单一的房间级根特征将所有的区域信息与区域级的空间排列结合起来。场景层次解码器以自上而下的方式将室内场景层次从房间级潜伏代码逆向重建到更精细的层次。在训练的编码和解码过程中,进行了一些图信息传递操作,以捕捉物体与物体之间、房间边界与物体之间以及多个物体之间丰富的边缘关系和约束。
给定一个 3D 室内场景,作者将其表示为一个分层的图结构。层次结构中有多个概念层次:房间、功能区域、家具物体和物体零件的几何形状。除了 PartNet 中定义的物体和物体零件的自然概念外,作者还提出了一个新的概念层次——功能区域,将大房间中的物体进一步划分为更小的物体群,以便通过无参数方法产生更高质量的 3D 场景。节点定义描述如下:
区域。根据家具形状的功能,功能区域将整个场景划分为更小的物体群,以获得更一致和更便于学习的场景分层表示。不同类型的房间通常有非常不同的功能区域。明确地对区域语义进行建模,不仅可以提供许多有意义的语义标签作为场景生成结果的一部分,而且还有利于对每个房间内的大量对象进行建模。
物体。将场景空间划分为功能区域后,每个区域内都有许多家具物体。每个形状是由一个网格几何形状描述的,同时还有它的语义物体类别和它在区域内的空间位置。
4.2 边缘关系
本文考虑场景层次结构中的两种节点关系:
父节点和子节点之间关系的垂直边; 同一级别节点之间的水平边。
4.2.1 垂直边界
房间根节点由多个功能区域组成; 每个区域包含许多家具物体; 每个物体进一步由不同粒度的物体零件组成。
在某些场景中,物体的定向边界框可能必须与房间边界对齐; 场景中生成的物体必须位于房间边界墙内。
4.2.2 二进制水平边界
作者发现二元关系不足以描述复杂的物体布局,因为一些现实场景可能有更复杂的关系,这些关系发生在两个以上的节点之间。例如,在图 5(a)中,除了所示的广泛的二元关系之外,考虑约束四把椅子围绕中央餐桌的 5 元超边关系将是有益的。类似的超边关系也可能有帮助,例如图 5(b)中的示例,其中两个床头柜和床的定向边界框应该彼此平行。
n 重旋转对称 :例如餐桌周围放着几把餐椅; 平行共线性:例如多个盒子物体彼此平行并且它们的中心可能共线对齐。
层级图网络
提出的网络是一个条件 RvNN-VAE,在上一节定义的分层场景图表示上,有许多边界损失,以鼓励在生成的场景中建立更现实和合理的结构关系。
SceneHGN 将场景层次结构从房间根节点向下到物体零件几何形状作为输入,并以额外的输入房间边界作为条件。房间边界通过地板编码器映射为条件特征,而场景层次也 SceneHGN 的编码器映射为潜在向量。然后,将条件房间边界特征和编码场景层次特征连接在一起,随后将其输入 SceneHGN 的解码器以重建输入场景层次。
为了训练 VAE 生成模型,添加了正则化,使用 KL 散度,在潜在空间上将所有场景映射到标准高斯分布,可以从中平滑地采样新场景并在给定场景之间进行插值。由于作者采用了 DSGNet 的物体零件层次结构,因此零件几何编码器和零件几何解码器遵循 DSG-Net。编码器接收零件几何信息,包括物体每个零件的变形梯度,其中心以及其结构信息,并映射到潜伏嵌入特征。反之,解码器将潜伏特征及其结构信息映射回变形梯度空间。
5.1 房间边界布局 VAE
作者的目标是在给定任意房间边界的情况下生成房间,该边界在拓扑上与环形边界同构。为了生成合理的室内房间并对物体与房间边界之间的关系进行建模,需要有效地表示房间边界的详细几何形状。
为了实现这一目标,训练了一个由编码器和解码器组成的 FloorNet VAE,以将房间的地板边界映射到潜在空间。作者提出使用 2D 顶点环的变形特征来表示地板边界几何。任何封闭的地板边界都可以表示为变形的二维单位正方形边界。在本文中,单位正方形边界由 596 个顶点和 596 条边组成。所提出的 FloorNet 的架构如图 6 所示。
5.2 场景层次编码器
5.3 场景层次解码器
解码过程以地板编码器提取的地板边界特征为条件。场景层次解码器将场景层次编码器输出的地板条件和根节点特征作为输入,并学习以递归方式将场景层次解码到零件几何结构。它还包括两部分:一个递归解码器,它根据物体特征预测部分几何形状;另一个递归解码器,它使用父节点特征以及条件特征,并解码物体根节点特征。对于物体解码,解码器遵循 DSG-Net 中的设计。
递归解码器将房间节点特征作为输入,并推断其子功能区域的节点特征,直到达到物体级别。对于每个解码步骤,本文假设每个父节点最多有 10 个子节点,并学习使用二元分类网络(由具有 Sigmoid 激活函数的 MLP 实现)来预测节点存在似然分数的概率。还将子节点的语义信息预测为输出。对于物体节点,训练一个 MLP 来预测放置参数、分类语义标签和物体特征,然后将其反馈并解码零件层次结构。
放置参数预测网络由两个全连接层、一个 Leaky ReLU 激活层和一个跳跃链接组成。网络分别通过三个单独的全连接层预测中心、缩放和围绕上轴的方向。因此,根据提取的节点特征,首先预测节点的存在性、语义和几何形状。
5.4 训练过程与损失函数
5.4.1 训练策略
5.4.2 损失项
其中 S 是场景在整个数据集中的分布,重建损失 L 包括叶子损失、语义损失、边/节点存在损失、几何损失、放置损失和一些边缘损失(例如房间-物体边界、物体-物体边界、超边界和零件边界)。除了房间物体边界和提出的超边界的放置损失和边界损失外,其他损失项遵循 StructureNet。对于结构一致性损失,在 StructureNet 中使用它来确保生成的物体结构合理真实。
然而,与 StructureNet 不同的是,本文只在物体层级上添加了损失,而不是在整个场景层级上。而正则化旨在使潜在空间更平滑,更容易用于下游应用程序(场景生成和插值)。根据经验,γ = 0.01。
现在定义放置参数重建损失和边界损失。
放置参数重建损失。中心,尺度 ,以及围绕上轴的方向用于表示每个物体在室内场景中的位置。此外,观察到家具通常位于地板或天花板上,房间中的家具形状通常有 8 个方向,在大多数情况下间隔为 45°。因此,使用离散表示对家具的方向进行编码,以预测上述候选物体的粗略方向,并使用残差偏移来拟合物体的真实方向。
房间-对象二进制边缘损失。这个损失项的主要目的是尽可能地将预测物体的位置与房间的边界墙对齐。在原始室内场景数据中,如果将上轴表示为 y 轴,则房间边界大部分与 x 轴和 z 轴对齐。在此假设下,鼓励物体的定向边界框与 x 轴和 z 轴对齐。损失项仅适用于在解码期间检测到的具有属性(房间物体边缘)的物体。
实验与应用
作者进行了广泛的实验,评估 SceneHGN 用于 3D 场景重建、生成和插值,以及许多其他应用程序,例如场景编辑、从 3D Box 布局条件生成和房间补全。在许多定量指标和感知研究方面将 GRAINS 和 Deep Priors 作为两种最先进的方法进行了比较,证明了本文方法的卓越性能。使用 3D-FRONT 数据集进行训练和评估。3D-FRONT 是新发布的 3D 室内场景数据集,包含 6,815 栋房屋和 51,708 个房间。房间设计直接来自专业创作。
对生成结果的感知研究。除了定量结果外,作者还对本文提出的方法和两种基线方法的生成结果进行了感知研究。为了公平地比较结果,我们从数据集中随机选择 100 层边界,并使用这些边界作为条件为所有三种方法生成房间。为每位参与者准备了 20 个问题。
插值是提出的 RvNN-VAE 的另一个直接应用。为了显示 VAE 所学到的潜在空间的平滑性,在图 11 中展示了一些内插的例子。在插值时,首先将地板边界和源场景以及目标场景的场景布局编码为特征向量,并在源和目标之间同时对这两个特征进行线性插值,然后将它们送入条件 VAE 解码器。由于生成式 FloorNet 保证了有意义的潜空间,所以 FloorNet 可以实现源和目标之间合理的插值房间边界。
从 3D 盒子布局生成房间。在生成 3D 室内场景时,有时会给出比地板边界更多的条件。室内设计中广泛使用的条件是二维平面图,它基本上包含地板边界和家具的二维边界框的信息。可以将 2D 平面图扩展到 3D 盒子布局。在 3D 框布局中,提供了物体的房间边界和 3D 边界框,但物体的语义类型和零件几何形状是未知的。需要生成一个房间,里面的家具需要与输入框相协调。
房间补全。与以 3D 盒子布局为条件的房间生成相比,房间补全在某种程度上是一项更具挑战性的任务。对于部分场景,本文的方法需要预测房间中所有丢失的物体。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧